package com.qfmy.web.app.service.user;

import com.qfmy.common.login.CodeResult;
import com.qfmy.model.entity.user.UserInfo;
import com.qfmy.model.query.user.LoginQuery;
import com.qfmy.model.vo.user.LoginVo;
import com.qfmy.model.vo.user.UserInfoVo;

import java.math.BigDecimal;

/**
 * @author 清风明月
 * @Package com.qfmy.web.app.service.user
 * @date 2025/10/30
 * @description 用户服务类
 */
public interface UserInfoService {

    /**
     * 获取临时登录令牌
     * @return
     */
    String getTempLoginToken();

    /**
     * 获取用户信息
     * @return
     */
    UserInfoVo getUserInfo();

    /**
     * 获取用户二维码
     * @return
     */
    String getUserQrCode();

    /**
     * 修改用户喜欢类型
     * @param categoryName
     */
    void updateUserLikeType(String categoryName);

    /**
     * 充值vip
     * @param amount
     * @param day
     */
    void rechargeVip(double amount, Integer day);

    /**
     * 修改用户头像
     * @param avatar
     */
    void updateUserAvatar(String avatar);

    /**
     * 修改用户信息
     * @param userInfo
     */
    void updateUserInfo(UserInfo userInfo);

    /**
     * 微信登入
     * @param loginQuery
     * @return
     */
    LoginVo WxLogin(LoginQuery loginQuery);

    /**
     * 手机号登入
     * @param loginQuery
     * @return
     */
    LoginVo phoneLogin(LoginQuery loginQuery);

    /**
     * 注销账号
     */
    void logout();

    /**
     * 获取今日已读时间
     * @return
     */
    BigDecimal getTodayReadTime();

    /**
     * 修改今日已读时间
     *
     * @param readTime
     * @param type
     */
    void updateTodayReadTime(Integer readTime, Integer type);

    /**
     * 获取图形验证码
     * @return
     */
    CodeResult getGraphicCode();

    /**
     * 登入
     *
     * @param loginQuery
     * @return
     */
    LoginVo login(LoginQuery loginQuery);
}
